package com.fire.web.modules.all.service;

import com.fire.web.modules.all.entity.FireSupervisorModel;
import com.fire.web.modules.all.validation.AssetDTO;
import com.fire.web.modules.all.validation.SupervisorDTO;
import com.smartthing.rest.model.asset.LocationAsset;
import com.smartthing.rest.model.search.AssetSearchResults;
import com.smartthing.spi.SmartThingException;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: IAssetService
 * @Description: TODO
 * @Author raoyuxing
 * @Date 2019/1/14 18:41
 */
public interface IAssetService {

    /**
     * 功能描述: 新增资产
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/18 9:58
     */
    LocationAsset addAsset(AssetDTO assetDTO) throws SmartThingException;

    /**
     * 功能描述: 获取资产列表
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/18 9:58
     */
    AssetSearchResults getAssetList(AssetDTO assetDTO) throws SmartThingException;

    /**
     * 功能描述: 查询资产详情
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/18 9:58
     */
    LocationAsset getAssetDetail(AssetDTO assetDTO) throws SmartThingException;

    /**
     * 功能描述: 根据sitetoken获取资产列表
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/21 14:20
     */
    Map getAssetListBySiteId(AssetDTO assetDTO) throws SmartThingException ;

    /**
     * 功能描述: 删除资产
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/21 14:20
     */
    AssetSearchResults deleteAsset(AssetDTO assetDTO) throws SmartThingException ;

    /**
     * 功能描述: 修改资产
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/21 14:20
     */
    LocationAsset updateAsset(AssetDTO assetDTO) throws SmartThingException ;

    /**
     * 功能描述: 获取消防资产类型列表（已绑定）
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/21 14:20
     */
    Map<String, Object> bindFacilitiesList(AssetDTO assetDTO) throws SmartThingException;

    /**
     * 功能描述: 获取消防资产类型列表（未绑定）
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/21 14:20
     */
    AssetSearchResults facilitiesList(AssetDTO assetDTO) throws SmartThingException;

    /**
     * 功能描述: 条件查询资产列表
     * @param:
     * @return:
     * @auther: raoyuxing
     * @date: 2019/1/18 9:58
     */
    AssetSearchResults getSearchAssetList(AssetDTO assetDTO) throws SmartThingException;
}
